package com.jfinalbbs.module.index;

import com.jfinal.core.Controller;
import com.jfinal.kit.HashKit;
import com.jfinal.kit.StrKit;
import com.jfinalbbs.module.user.User;

/**
 * Created by Tomoya.
 * Copyright (c) 2016, All Rights Reserved.
 * http://jfinalbbs.com
 */
public class IndexController extends Controller {

    public void index() {
        render("index.ftl");
    }

    public void login() {
        //获取login请求是get还是post
        String method = getRequest().getMethod();
        if(method.equalsIgnoreCase("get")) {//get直接进入登录界面
            render("login.ftl");
        } else if(method.equalsIgnoreCase("post")) {//post请求要到数据库里去验证数据
            // 获取登录信息,跟数据库校验
            String username = getPara("username");
            String password = getPara("password");
            if(StrKit.isBlank(username) || StrKit.isBlank(password)) {
                setAttr("errMsg", "用户名或密码都不能为空");
                render("login.ftl");
            } else {
                //HashKit是jfinal里自带的一个工具类,里面有各种各样的加密方法,在这把密码md5加密跟数据库比较
                User user = User.me.login(username, HashKit.md5(password));
                if (user == null) {
                    setAttr("errMsg", "用户名或密码错误");
                    render("login.ftl");
                } else {
                    setSessionAttr("user", user);
                    redirect("/");
                }
            }
        }
    }

    public void reg() {
        //获取reg请求是get还是post
        String method = getRequest().getMethod();
        if(method.equalsIgnoreCase("get")) {//get直接进入登录界面
            render("reg.ftl");
        } else if(method.equalsIgnoreCase("post")) {//post请求要到数据库里去验证数据
            // 获取登录信息,跟数据库校验
            String username = getPara("username");
            String password = getPara("password");
            if(StrKit.isBlank(username) || StrKit.isBlank(password)) {
                setAttr("errMsg", "用户名或密码都不能为空");
                render("reg.ftl");
            } else {
                //HashKit是jfinal里自带的一个工具类,里面有各种各样的加密方法,在这把密码md5加密跟数据库比较
                User user = User.me.findByUsername(username);
                if (user != null) {
                    setAttr("errMsg", "用户名已存在");
                    render("reg.ftl");
                } else {
                    user = new User();
                    user.set("username", username);
                    user.set("password", HashKit.md5(password));
                    user.save();
                    redirect("/login");
                }
            }
        }
    }
}
